ATA devices are those that comply with an ANSI (American National Standards Institute) ATA standard, for instance the standard “AT Attachment with Packet Interface Extension—(ATA/ATAPI-4)” or one of its predecessors. The letters ATA are an acronym for “AT Attachment”, based on a hard drive that was “attached” to the original IBM PC/AT. Sometimes ATA hard drives are also referred to as IDE (Integrated Drive Electronics) drives, indicating that a hard drive controller is integrated directly on the hard drive itself, and not on a separate board. There is no “official” IDE designation through ANSI, although the IDE name remains commercially popular.
The letters ATAPI stand for “ATA Packet Interface” and designate devices that operate on the same cable and bus as normal ATA devices, but communicate through the use of command packets. Most CD-ROMs and other type of mass storage drives conform to one of the ATAPI standards, and more specifically, to one of the ATA/ATAPI standards.
The ATA/ATAPI standards define the physical, electrical, transport, and command protocols for the attachment of devices to computers via an ATA bus. FIG. 1 shows a typical configuration for a computer 20 capable of using one or more ATA data devices. A host processor 22 communicates with main memory 24 over a frontside bus 28. The processor 22 (and main memory 24) can also communicate with a variety of other system peripherals through a PCI (Peripheral Component Interconnect) bridge 26 and a PCI local bus 30.
The bandwidth of the PCI local bus 30 can be shared by a variety of computer components, some of which are depicted in FIG. 1. For instance, internal PCI-compliant devices such as modems, sound cards, video cards, etc. can be attached to the computer 20 via a set of PCI card slots 32, 34, typically mounted directly on the computer motherboard. In addition, a USB (Universal Serial Bus) interface 36 typically provides a number of USB ports 38 for the attachment of a wide variety of external devices, such as a mouse, a keyboard, a digital camera, audio devices, printers, etc.
An ATA host adapter 40 performs signal conversion between the PCI local bus 30 and yet another bus, an ATA bus 42. Up to two ATA devices (e.g., devices 44 and 46 on FIG. 1) can share a single ATA bus 42. A primary device is known as device 0, or the “master” when two devices are present. A secondary device is known as device 1, or the “slave”.
Another way to connect an ATA bus to the host computer 20 is through the USB bus. Specifically, FIG. 1 shows an ATA bus 52 connected through a USB/ATA-ATAPI bridge 50 to one of the USB ports 38. An ATA/ATAPI device 54 attaches to the ATA bus 52, which, as described above, is bridged to the USB bus through the USB/ATA bridge 50. Although providing the ATA bus 52 in this manner is convenient, a limit exists in that Mass Storage Class (MSC) definitions in the USB 2.0 specification limits the number of ATA devices able to be attached to a USB bus to one. This can be limiting because it may be desirable to attach more than one ATA/ATAPI devices to a USB bus. For instance, it would be convenient to hook an external CD-ROM drive and an external hard drive to a computer using only one of the USB ports 38.
Embodiments of the present invention allow more than one ATA/ATAPI device to be coupled to the USB bus.